package com.zhengqing.system.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhengqing.system.entity.SysMenu;
import com.zhengqing.system.model.dto.SysMenuListDTO;
import com.zhengqing.system.model.dto.SysMenuSaveDTO;
import com.zhengqing.system.model.vo.SysMenuTreeVO;

/**
 * <p>
 * 系统管理-菜单表 服务类
 * </p>
 *
 * @author : zhengqing
 * @description :
 * @date : 2020/4/15 18:51
 */
public interface ISysMenuService extends IService<SysMenu> {

    /**
     * 列表分页
     *
     * @param params:
     *            查询参数
     * @return: 菜单信息
     * @author : zhengqing
     * @date : 2020/9/10 19:04
     */
    IPage<SysMenu> listPage(SysMenuListDTO params);

    /**
     * 列表
     *
     * @param params:
     *            查询参数
     * @return: 菜单信息
     * @author : zhengqing
     * @date : 2020/9/10 19:18
     */
    List<SysMenu> list(SysMenuListDTO params);

    /**
     * 新增或更新
     *
     * @param params:
     *            提交参数
     * @return: 菜单id
     * @author : zhengqing
     * @date : 2021/1/13 20:46
     */
    Integer addOrUpdateData(SysMenuSaveDTO params);

    /**
     * 获取菜单树
     *
     * @param systemSource:
     *            系统来源
     * @return: 菜单树信息
     * @author : zhengqing
     * @date : 2021/1/13 20:44
     */
    List<SysMenuTreeVO> tree(Integer systemSource);

    /**
     * 拿到所有菜单 - 只供菜单树使用
     *
     * @param systemSource:
     *            系统来源
     * @return: 菜单信息
     * @author : zhengqing
     * @date : 2020/9/10 20:33
     */
    List<SysMenuTreeVO> selectMenuTree(Integer systemSource);

}
